﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WiMo.Games.Online
{
    public enum OnlineStates
    {
        NotAvailable,
        Available,
        Authenticated
    }

    public interface IOnlineGaming
    {
        OnlineStates OnlineState { get; }

        /// <summary>
        /// Used to authenticate the user with a custom user interface.
        /// </summary>
        /// <param name="applicationId">ID for the game binary.  Used to identify/authenticate the application on the server.  This will probably be some sort of constant within the application.</param>
        /// <param name="gamerTag">Gamer Tag to indentiy player</param>
        /// <param name="password">Password to authenticate the player.</param>
        /// <returns></returns>
        ISession Authenticate(Guid applicationId, string gamerTag, string password);
        bool Login(ref ISession session);
        bool NewGamer(ref ISession session);

        IHighScoreService HighScoreService { get; set; }
    }
}
